package com.welike.shibo.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.welike.shibo.eneity.Audio;
import com.welike.shibo.eneity.JsonResult;
import com.welike.shibo.vo.page.AudioPageVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * Created by fangyu on 2019-08-18.
 */
public interface AudioService extends IService<Audio> {

    /**
     * 查询所有音频(分页后台)
     * @return List<Audio>
     */
    IPage<Audio> queryAllAudio(Integer page, Integer pageSize);

    /**
     * 上传音频功能
     * @param file 文件
     * @return String
     * @throws IOException IO异常
     */
    String uploadFile(MultipartFile file) throws IOException;

    /**
     * 分页获取音乐列表(带入状态)
     * @param page 分页
     * @param pageSize 分页大小
     * @param state 状态
     * @return IPage
     */
    IPage<AudioPageVo> selectAudioPageVo(Integer page, Integer pageSize, Integer state);

    /**
     * 通过id获取名字
     * @param aid 音乐id
     * @return String
     */
    String queryNameById(String aid);

    // 上传音乐
    JsonResult uploadMusic(MultipartFile file, String name, Integer duration) throws IOException;

    String queryAudioUrlById(String audioId);

    JsonResult addMusic(JSONObject requestJson);

    JsonResult deleteMusicById(String id);

    JsonResult updateStatus(String id, String status);
}
